class DataCell {
	constructor (columnName, value) {
		this.columnName = columnName;
		this.value = value;
	}
	
	getDataColumn() {
		const dataColumn = dataTable.getDataColumn(columnName);
		if (!Obejct.keys(dataColumn).length) {
			alert("数据表"+dataTable.getLabel()+"中不存在数据列"+dataColumn);
		}
		return dataColumn;
	}

	getValue() {
		return this.value;
	}
	
}
export default class GeneralDataRow {
	
	
	// dataTable = {};
	rowData = [];
	
	constructor (dataTable) {
		if (!Object.keys(dataTable).length) {
			alert("数据行对应数据表不允许为空")
		} else {
			// this.dataTable = dataTable;
			// this.initDataRow();
		}
	}
	
	initDataRow() {
		// console.log(this.dataTable,this.dataTable.getDataColumns())
		this.dataTable.getDataColumns().forEach(dataColumn=>{
			this.setCellValue(dataColumn.name, dataColumn.getDefaultValue());
		});
	}
	
	getCellValue(columnName) {
		let optional = this.rowData.filter(cellValue => cellValue.columnName === columnName)
		if (Object.keys(optional)) {
			let dataCell = optional[0];
			if (!dataCell) {
				console.error(`${columnName}不存在`)
			} else {
				let value = dataCell.value
				return value;
			}
		}
		return ;
	}
	
	getDataCells(){
		return this.rowData;
	}
	
	setCellValue(columnName, value) {
		// const dataColumn = this.dataTable.getDataColumn(columnName);
		// if (!Object.keys(dataColumn).length) {
		// 	alert("数据表"+this.dataTable.label+"中不存在数据列"+dataColumn);
		// } else {
		// 	//TODO 校验数据合法性，例如数据类型，枚举等
		// 	const optional = this.rowData.filter(cellValue => cellValue.columnName === columnName)
		// 	if (Object.keys(optional).length) {
		// 		optional[0].value = value;
		// 	} else {
		// 	}
		// }
		this.rowData.push(new DataCell(columnName, value));
	}
	
}